#ifndef __VOLUME_KEY_PRIVATE_H__
#define __VOLUME_KEY_PRIVATE_H__

#include <remconcoreapitargetobserver.h>    // link against RemConCoreApi.lib


class VolumeKey;
class CRemConInterfaceSelector;
class CRemConCoreApiTarget;

class VolumeKeyPrivate : public MRemConCoreApiTargetObserver
{
public:
    void Listen();
    void SetObserver(VolumeKey* wrapper);
    static VolumeKeyPrivate* NewL(VolumeKey* wrapper);

    ~VolumeKeyPrivate();

private:
    VolumeKeyPrivate(VolumeKey* wrapper);
    void ConstructL();

    // From MRemConCoreApiTargetObserver
public:
    void MrccatoCommand(TRemConCoreApiOperationId aOperationId,
                        TRemConCoreApiButtonAction aButtonAct);
    // following functions from MRemConCoreApiTargetObserver are not needed
    // in this case -> use empty implementations for these:
    // MrccatoPlay
    // MrccatoTuneFunction
    // MrccatoSelectDiskFunction
    // MrccatoSelectAvInputFunction
    // MrccatoSelectAudioInputFunction

private:
    VolumeKey* q_ptr;
    CRemConInterfaceSelector* iInterfaceSelector;
    CRemConCoreApiTarget*     iCoreTarget;
};

#endif // __VOLUME_KEY_PRIVATE_H__

